package controllers

import (
	"blog/app/server"
	"github.com/kataras/iris"
	"blog/app/common"
)

type TagController struct {

}

var tagServer server.TagServer

func (*TagController) GetHandler(ctx iris.Context){
	tags := tagServer.Get()
	ctx.JSON(common.NewCoderDefault(tags))
}

func (*TagController) GetStatHandler(ctx iris.Context){
	tagStats := tagServer.GetTagStat()
	ctx.JSON(common.NewCoderDefault(tagStats))
}

func (*TagController) InsertHandler(ctx iris.Context){
	var TagParam = struct {
		Name string `json:"name"`
	}{}
	ctx.ReadJSON(&TagParam)
	name := TagParam.Name
	if name == ""{
		ctx.JSON(common.NewCoderBool(false))
		return
	}
	ok := tagServer.Insert(name)
	ctx.JSON(common.NewCoderBool(ok))
}

func (*TagController) UpdateHandler(ctx iris.Context){
	id := ctx.Params().GetUint64Default("id",0)
	name := ctx.PostValueDefault("name", "")
	ok := tagServer.Update(id,name)
	ctx.JSON(common.NewCoderBool(ok))
}

func (*TagController) DeleteHandler(ctx iris.Context){
	id := ctx.Params().GetUint64Default("id",0)
	ok := tagServer.Delete(id)
	ctx.JSON(common.NewCoderBool(ok))
}